How Does Bug-Handling Effort Differ Among Different Programming Languages?

نویسندگان

  • Jie Zhang
  • Feng Li
  • Dan Hao
  • Meng Wang
  • Lu Zhang
چکیده

Handling bugs is an essential part of so‰ware development. Œe impact of programming language on this task has long been a topic of much debate. For example, some people hold the view that bugs in Python are easy to handle because its code is easy to read and understand, while some others believe the absence of static typing in Python will lead to higher bug-handling e‚ort. Œis paper presents the €rst large-scale study to investigate whether the ecosystems of di‚erent (categories of) programming language would require di‚erent bug-handling e‚ort. Œe focus is on correlation analysis rather than causal analysis. With 600 most popular projects in 10 languages downloaded from GitHub (summing up to 70,816,938 SLOC and 3,096,009 commits), the experimental results indicate various interesting €ndings. First, di‚erent languages require di‚erent bug-handling e‚ort. For example, Java and C# tend to need less time but more line/€le modi€cation, Python and PHP tend to need less time and less line/€le modi€cation, while Ruby and JavaScript tend to need more time as well as more line/€le modi€cation. Second, weak/dynamic languages tend to need more time than strong/static languages, while static languages tend to need more absolute line/€le modi€cation. A toy predictive model also provides proof that the inclusion of programming languages could improve the e‚ectiveness when predicting the bug-handling e‚ort of a project.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dynamic Error Remediation: A Case Study with Null Pointer Exceptions

Managed programming languages have improved the robustness of software by reducing some classes of errors. Despite these improvements, programs still contain errors. Even with help from existing static and dynamic analysis tools, the errors are often difficult to detect and can be even more difficult to successfully eliminate. This work introduces a new approach, called dynamic error remediatio...

متن کامل

Leveraging Human Intelligence: Semi-automated Processing in Assuring Access to Digital Content

Need for standardization in the content production industry have led producers of popular authoring and publishing applications to adopt structured mark-up languages, such as XML, to implement their content file formats. As part of our effort to ensure long term access to such content, we need to consider properties of the mark-up schemas and devise methods to enable effective mapping among the...

متن کامل

Automatically Detecting Error Handling Bugs Using Error Specifications

Incorrect error handling in security-sensitive code often leads to severe security vulnerabilities. Implementing correct error handling is repetitive and tedious especially in languages like C that do not support any exception handling primitives. This makes it very easy for the developers to unwittingly introduce error handling bugs. Moreover, error handling bugs are hard to detect and locate ...

متن کامل

Enhancing CIMOSA with Exception Handling

CIMOSA (Open System Architecture for CIM) [2], an architecture for the modelling of manufacturing applications, does not provide a facility for exception definition and handling. Exceptions, traditionally associated to programming language and operating systems, are necessary in all types of languages, including specification languages. Our contribution consists of the enhancement of the CIMOSA...

متن کامل

First-Class Functions in an Imperative World

First-class functions are a hallmark of functional languages, but they are a useful concept in imperative languages, too. Even ANSI C offers a restricted form of first-class functions (in the form of pointers to functions), and several more recent imperative languages, such as Python 3, Go, Lua, and Swift, offer first-class, anonymous functions with lexical scoping. In most imperative languages...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • CoRR

دوره abs/1801.01025  شماره 

صفحات  -

تاریخ انتشار 2018